print to file: fixed lost filename in gui
authorTimothy Arceri <t_arceri@yahoo.com.au>
Thu, 8 Dec 2011 01:03:07 +0000 (20:03 -0500)
committerRyan Lortie <desrt@desrt.ca>
Thu, 8 Dec 2011 01:04:38 +0000 (20:04 -0500)
Stop widget creating an event before updating both directory and
filename values.

https://bugzilla.gnome.org/show_bug.cgi?id=603823

gtk/gtkprinteroptionwidget.c

index 840fb26414693cbbeb3405ac2c30afadb40badbb..d3ef0460230aa2b3e9f68456bb7decb1fad9c7f7 100644 (file)
@@ -882,13 +882,22 @@ update_widgets (GtkPrinterOptionWidget *widget)
 
             basename = g_path_get_basename (filename);
             dirname = g_path_get_dirname (filename);
+
             text = g_filename_to_utf8 (basename, -1, NULL, NULL, NULL);
+           
+            /* need to update dirname and basename without triggering function to avoid loosing names */
+            g_signal_handlers_block_by_func (priv->entry, G_CALLBACK (filesave_changed_cb), widget);
+            g_signal_handlers_block_by_func (priv->combo, G_CALLBACK (filesave_changed_cb), widget);
 
             if (text != NULL)
               gtk_entry_set_text (GTK_ENTRY (priv->entry), text);
             if (g_path_is_absolute (dirname))
-              gtk_file_chooser_set_current_folder (GTK_FILE_CHOOSER (priv->combo),
+              gtk_file_chooser_set_filename (GTK_FILE_CHOOSER (priv->combo),
                                                    dirname);
+
+            g_signal_handlers_unblock_by_func (priv->entry, G_CALLBACK (filesave_changed_cb), widget);
+            g_signal_handlers_unblock_by_func (priv->combo, G_CALLBACK (filesave_changed_cb), widget);
+            
             g_free (text);
             g_free (basename);
             g_free (dirname);